Instant messaging (IM) services have existed in Internet protocol (IP) networks for some time. Instant messaging is generally defined as the exchange of content, usually short text messages, between a set of participants in near real time. IM clients have evolved to include presence applications, which determine when a predetermined list of users are actively connected to the IP network and are available to participate in an IM session. The Session Initiation Protocol (SIP) is used to set up multi-media sessions between SIP users. For example, the sessions may be voice telephone calls between SIP-capable telephones. SIP has also been extended to support the transfer of instant messages.
SIP uses an INVITE request to initiate a media session between two or more users. One feature of the INVITE request is that it can contain MIME-encoded text, so some instant messaging clients may use an INVITE request to deliver instant messaging text while establishing a media stream between users. Another method for delivering instant messages in the SIP environment is a MESSAGE request. The main difference between an INVITE request containing text and the MESSAGE request is the MESSAGE request does not establish a SIP dialog session.
FIG. 1 depicts a typical SIP network deployment. In this example, user agent 102 wishes to establish a call with user agent 104. To establish the call, user agent 102 sends an INVITE request addressed to user agent 104. While user agent 102 knows the uniform resource identifier (URI) and the SIP identity for user agent 104, it is likely that user agent 102 does not know the specific location or the address of the SIP server that serves user agent 104. To determine the address of the SIP server, user agent 102 transmits the INVITE request to a local proxy server 106. The proxy server 106 receives SIP requests and forwards them on behalf of the requester. In this example, the proxy server 106 receives the INVITE request and sends a response back to user agent 102 indicating that the proxy server 106 is attempting to deliver the message. Proxy server 106 may determine the address of the proxy server associated with user agent 104 by various means, including performing a domain name service (DNS) lookup or sending a request to a redirect server 108. Once the address of the destination proxy server 110 is obtained, proxy server 106 forwards the INVITE request to proxy server 110 for delivery to user agent 104. Once proxy server 110 receives the INVITE request, proxy server 110 consults a location service database 112 that contains the current IP address of user agent 104. Proxy server 110 may deliver the INVITE request directly to user agent 104 or may use an intermediate proxy server 114, depending on network topology.
As noted above, the INVITE request may include MIME-encoded text. For example, user agent 102 may wish to include a short text message stating the purpose of the call so that user agent 104 can decide whether to answer the call or not. On SIP-enabled phones, the text portion of the INVITE request may be displayed by the phone when the user is notified of an incoming call.
It should be appreciated that FIG. 1 depicts a network configuration where both the originating user agent and the destination user agent are located on IP-based networks. However, it is important for IP-based networks to interoperate with traditional PSTN networks to enable voice communication between users of each network. Thus, the SIP protocol, which is used to establish a media session between user agents in an IP network, must interoperate with the SS7 ISUP protocol, which is used for call processing in a PSTN network. While SIP permits the transmission of text while establishing a voice connection, SS7 does not support this feature.
Accordingly, there is a need to provide a system and method for converting an INVITE request containing MIME-encoded text into corresponding SS7 messages, thereby preserving the MIME-encoded text portion and establishing an end-to-end connection.